// 引入发送请求的方法，一定要把路径补全
import { request } from "../../request/index.js"
import regeneratorRuntime from '../../lib/runtime/runtime';

// pages/category/category.js
Page({
  data: {
    // 商品分类数组
    cateList: [],
    // 左侧菜单数据
    leftMenuList: [],
    // 右侧商品数据
    rightContent: [],
    // 左侧菜单选中数据
    currentIndex: 0,
    scrollTop: 0
  },
  Cates: [],
  onLoad: function (options) {
    // 先判断本地存储中有没有旧的数据
    // 没有旧数据，发送新的请求
    // 有旧数据 同时 数据也没有被删除，就是用本地数据即可

    //  1. 获取本地存储的数据（微信小程序也是存在本地数据 技术）
    let Cates = wx.getStorageSync("cates");
    if (!Cates) {
      this.getCates()
    } else {
      if (Date.now() - Cates.time > 1000 * 10) {
        this.getCates()
      } else {
        // 有旧的数据
        console.log(Cates.data)
        this.Cates = Cates.data
        let leftMenuList = this.Cates.map(v => v.cat_name)
        let rightContent = this.Cates[0].children
        this.setData({
          leftMenuList,
          rightContent
        })
      }
    }
  },
  // 获取商品分类的数据
  // getCates(){
  //   request({url: "/categories"})
  //   .then(res => {
  //     console.log(res.data.message)
  //     this.Cates = res.data.message
  //     // 把接口的数据存入到本地数据中
  //     wx.setStorageSync("cates", {time: Date.now(), data: this.Cates});

  //     let leftMenuList = this.Cates.map(v => v.cat_name);
  //     let rightContent = this.Cates[0].children
  //     console.log(rightContent)
  //     this.setData({
  //       leftMenuList,
  //       rightContent
  //     })
  //   })
  // },

  // 使用 es7 的 async await 来发送请求
  async getCates() {
    let res = await request({ url: "/categories" })
    this.Cates = res
    // 把接口的数据存入到本地数据中
    wx.setStorageSync("cates", { time: Date.now(), data: this.Cates });

    let leftMenuList = this.Cates.map(v => v.cat_name);
    let rightContent = this.Cates[0].children
    console.log(rightContent)
    this.setData({
      leftMenuList,
      rightContent
    })
  },

  // 点击左侧菜单
  handleItemTap(e) {
    console.log(e.currentTarget.dataset)
    console.log(e)
    let { index } = e.currentTarget.dataset
    let rightContent = this.Cates[index].children
    this.setData({
      currentIndex: index,
      rightContent,
      scrollTop: 0
    })
  }
})